package cn.fl.customer.vo;

import cmm.web.core.framework.vo.BaseVO;
import cn.fl.custpay.dto.CstSignedBankDTO;
import cn.lb.framework.poi.excel.annotation.Excel;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

import java.util.Date;
import java.util.List;

/**
 * @Description: 客户开户银行信息表
 */
public class CstBankVO extends BaseVO{

	private static final long serialVersionUID = -7711082526671078717L;
	/**
	 * 客户ID
     */
	@Excel(name = "cstId")
	private Long cstId;
	/**
	 * 银行代码（CST0014）
     */
	private String bkCd;
	/**
	 * 账户名称
     */
	@Excel(name = "开户名称")
	private String accNm;
	/**
	 * 银行账号
     */
	@Excel(name = "银行帐号")
	private String accNo;
	/**
	 * 账户类型（CST0015）
     */
	private String accTypCd;
	/**
	 * 开户机构
     */
	private String accOrgNm;
	/**
	 * 证件类型（CST0005）
     */
	private String certTypCd;
	/**
	 * 证件号码
     */
	private String certNo;
	/**
	 * 是否划扣卡
     */
	private Integer isDeduct;
	/**
	 * 是否有效
     */
	private Integer isValid;
	/**
	 * 验证状态（SYS0034）
     */
	private String audStsCd;
	/**
	 * 流程实例ID
     */
	private Long pInstId;
	/**
	 * 是否删除（1：是，0：否）
     */
	private Integer isDel;

	/**
	 * 所属事业部
     */
	private String buOrgCd;

	/**
	 * 所属组织架构（维护用户所属组织机构代码）
     */
	private String orgCd;

	/**
	 * 备注
	 */
	@Excel(name = "备注")
	private String accRem;

	/**
	 * 开户行行号
	 */
	private String bkNo;

	/**
	 * 验证状态备注
     */
	private String audStsCdRem;

	 /**
	  * 来源（CST0036）
	  */
	 private String regWayCd;

	 /**
	  * 签约号（信联）
	  */
	 private String signNo;

	 /**
	  * 银行卡类型（0:借记卡,1:信用卡）
	  */
	 private Integer cardType;

	/**
	 * 银行预留手机号
	 */
	private String cardTel;

	//********附加属性开始*************//

	/**
	 * 银行代码前端显示（CST0014）
     */
	private String bkCdNm;

	/**
	 * 账户类型前端显示（CST0015）
     */
	private String accTypCdNm;

	/**
	 * 证件类型前端显示（CST0005）
     */
	private String certTypCdNm;

	/**
	 * 验证状态（SYS0034）前端显示
     */
	@Excel(name = "验证状态")
	private String audStsCdNm;

	/**
	 * 是否划扣卡前端显示
     */
	private String isDeductNm;
	/**
	 * 是否缺省划扣卡前端显示
	 */
	private String isDefDeductNm;

	/**
	 * 客户名称
	 */
	@Excel(name = "所属客户")
	private String cstNm;

	/**
	 * 银行帐号ID
	 */
	@Excel(name = "bkId")
	private Long bkId;

	/**
	 * 是否有效
     */
	@Excel(name = "是否有效")
	private String isValidNm;

	/**
	 * 是否机构绑卡
	 */
	private Integer isInsBind;

	/**
	 * 如果是审核通过的客户则不能让其操作-修改 删除
	 */
	private boolean isOper;

	/**
	 * 来源（CST0036）
	 */
	private String regWayCdNm;

	/**
	 * 银行卡类型（0:借记卡,1:信用卡）
	 */
	private String cardTypeNm;
	/**
	 * 客户银行签约列表
	 */
	private List<CstSignedBankDTO> cstSignedBankList;

	private String payTypeName;

	/**
	 * 客户银行是否已设置自动代扣
	 */
	private Integer isAuto;

    /**
     *  客户银行首次设置自动代扣时间
     */
    private Date crtOlAutoDate;

    // 覆盖父类的id，加上注解，解决js处理long型丢失精度问题
	@JsonSerialize(using= ToStringSerializer.class)
    private Long id;

	@Override
	public Long getId() {
		return id;
	}

	@Override
	public void setId(Long id) {
		this.id = id;
	}


//********附加属性结束*************//

	public Integer getIsInsBind() {
		return isInsBind;
	}

	public void setIsInsBind(Integer isInsBind) {
		this.isInsBind = isInsBind;
	}
	/**
	 * 是否机构绑卡
	 */
	private String isInsBindNm;

	public String getIsInsBindNm() {
		return isInsBindNm;
	}

	public void setIsInsBindNm(String isInsBindNm) {
		this.isInsBindNm = isInsBindNm;
	}

	/**
	 * 来源（CST0036）名称
	 */
	public String getRegWayCdNm() {
		return regWayCdNm;
	}

	/**
	 * 来源（CST0036）名称
	 */
	public void setRegWayCdNm(String regWayCdNm) {
		this.regWayCdNm = regWayCdNm;
	}

	/**
	 * 银行卡类型（0:借记卡,1:信用卡）名称
	 */
	public String getCardTypeNm() {
		return cardTypeNm;
	}

	/**
	 * 银行卡类型（0:借记卡,1:信用卡）名称
	 */
	public void setCardTypeNm(String cardTypeNm) {
		this.cardTypeNm = cardTypeNm;
	}

	 /**
	  * 来源（CST0036）
	  */
	 public String getRegWayCd() {
		return regWayCd;
	 }

	 /**
	  * 来源（CST0036）
	  */
	 public void setRegWayCd(String regWayCd) {
		this.regWayCd = regWayCd;
	 }

	 /**
	  * 签约号（信联）
	  */
	public String getSignNo() {
		return signNo;
	}

	 /**
	  * 签约号（信联）
	  */
	 public void setSignNo(String signNo) {
		this.signNo = signNo;
	 }

	 /**
	  * 来源（CST0036）
	  */
	 public Integer getCardType() {
		return cardType;
	 }

	 /**
	  * 来源（CST0036）
	  */
	 public void setCardType(Integer cardType) {
		this.cardType = cardType;
	 }

	/**
	 * 验证状态备注
     */
	public String getAudStsCdRem() {
		return audStsCdRem;
	}

	/**
	 * 验证状态备注
     */
	public void setAudStsCdRem(String audStsCdRem) {
		this.audStsCdRem = audStsCdRem;
	}

	/**
	 * 如果是审核通过的客户则不能让其操作-修改 删除
	 */
	public boolean getIsOper() {
		return isOper;
	}

	/**
	 * 如果是审核通过的客户则不能让其操作-修改 删除
	 */
	public void setIsOper(boolean isOper) {
		this.isOper = isOper;
	}

	/**
	 * 是否有效
     */
	public String getIsValidNm() {
		return isValidNm;
	}

	/**
	 * 是否有效
     */
	public void setIsValidNm(String isValidNm) {
		this.isValidNm = isValidNm;
	}

	/**
	 * 开户行行号
	 */
	public String getBkNo() {
		return bkNo;
	}

	/**
	 * 开户行行号
	 */
	public void setBkNo(String bkNo) {
		this.bkNo = bkNo;
	}

	/**
	 * 银行帐号ID
	 */
	public Long getBkId() {
		return bkId;
	}

	/**
	 * 银行帐号ID
	 */
	public void setBkId(Long bkId) {
		this.bkId = bkId;
	}

	/**
	 * 客户名称
	 */
	public String getCstNm() {
		return cstNm;
	}

	/**
	 * 客户名称
	 */
	public void setCstNm(String cstNm) {
		this.cstNm = cstNm;
	}

	/**
	 * 备注
	 */
	public String getAccRem() {
		return accRem;
	}

	/**
	 * 备注
	 */
	public void setAccRem(String accRem) {
		this.accRem = accRem;
	}

	/**
	 * 所属事业部
     */
	public String getBuOrgCd() {
		return buOrgCd;
	}

	/**
	 * 所属事业部
     */
	public void setBuOrgCd(String buOrgCd) {
		this.buOrgCd = buOrgCd;
	}

	/**
	 * 所属组织架构（维护用户所属组织机构代码）
     */
	public String getOrgCd() {
		return orgCd;
	}

	/**
	 * 所属组织架构（维护用户所属组织机构代码）
     */
	public void setOrgCd(String orgCd) {
		this.orgCd = orgCd;
	}

	/**
	 * 客户ID
     */
	public Long getCstId() {
		return cstId;
	}

	/**
	 * 客户ID
     */
	public void setCstId(Long cstId) {
		this.cstId = cstId;
	}

	/**
	 * 银行代码（CST0014）
     */
	public String getBkCd() {
		return bkCd;
	}

	/**
	 * 银行代码（CST0014）
     */
	public void setBkCd(String bkCd) {
		this.bkCd = bkCd;
	}

	/**
	 * 账户名称
     */
	public String getAccNm() {
		return accNm;
	}

	/**
	 * 账户名称
     */
	public void setAccNm(String accNm) {
		this.accNm = accNm;
	}

	/**
	 * 银行账号
     */
	public String getAccNo() {
		return accNo;
	}

	/**
	 * 银行账号
     */
	public void setAccNo(String accNo) {
		this.accNo = accNo;
	}

	/**
	 * 账户类型（CST0015）
     */
	public String getAccTypCd() {
		return accTypCd;
	}

	/**
	 * 账户类型（CST0015）
     */
	public void setAccTypCd(String accTypCd) {
		this.accTypCd = accTypCd;
	}

	/**
	 * 开户机构
     */
	public String getAccOrgNm() {
		return accOrgNm;
	}

	/**
	 * 开户机构
     */
	public void setAccOrgNm(String accOrgNm) {
		this.accOrgNm = accOrgNm;
	}

	/**
	 * 证件类型（CST0005）
     */
	public String getCertTypCd() {
		return certTypCd;
	}

	/**
	 * 证件类型（CST0005）
     */
	public void setCertTypCd(String certTypCd) {
		this.certTypCd = certTypCd;
	}

	/**
	 * 证件号码
     */
	public String getCertNo() {
		return certNo;
	}

	/**
	 * 证件号码
     */
	public void setCertNo(String certNo) {
		this.certNo = certNo;
	}

	/**
	 * 是否划扣卡
     */
	public Integer getIsDeduct() {
		return isDeduct;
	}

	/**
	 * 是否划扣卡
     */
	public void setIsDeduct(Integer isDeduct) {
		this.isDeduct = isDeduct;
	}


	/**
	 * 验证状态（SYS0034）
     */
	public String getAudStsCd() {
		return audStsCd;
	}

	/**
	 * 验证状态（SYS0034）
     */
	public void setAudStsCd(String audStsCd) {
		this.audStsCd = audStsCd;
	}

	/**
	 * 流程实例ID
     */
	public Long getPInstId() {
		return pInstId;
	}

	/**
	 * 流程实例ID
     */
	public void setPInstId(Long pInstId) {
		this.pInstId = pInstId;
	}

	/**
	 * 是否删除（1：是，0：否）
     */
	public Integer getIsDel() {
		return isDel;
	}

	/**
	 * 是否删除（1：是，0：否）
     */
	public void setIsDel(Integer isDel) {
		this.isDel = isDel;
	}

	/**
	 * 银行代码前端显示（CST0014）
     */
	public String getBkCdNm() {
		return bkCdNm;
	}

	/**
	 * 银行代码前端显示（CST0014）
     */
	public void setBkCdNm(String bkCdNm) {
		this.bkCdNm = bkCdNm;
	}

	/**
	 * 账户类型前端显示（CST0015）
     */
	public String getAccTypCdNm() {
		return accTypCdNm;
	}

	/**
	 * 账户类型前端显示（CST0015）
     */
	public void setAccTypCdNm(String accTypCdNm) {
		this.accTypCdNm = accTypCdNm;
	}

	/**
	 * 证件类型前端显示（CST0005）
     */
	public String getCertTypCdNm() {
		return certTypCdNm;
	}

	/**
	 * 证件类型前端显示（CST0005）
     */
	public void setCertTypCdNm(String certTypCdNm) {
		this.certTypCdNm = certTypCdNm;
	}

	/**
	 * 验证状态（SYS0034）前端显示
     */
	public String getAudStsCdNm() {
		return audStsCdNm;
	}

	/**
	 * 验证状态（SYS0034）前端显示
     */
	public void setAudStsCdNm(String audStsCdNm) {
		this.audStsCdNm = audStsCdNm;
	}

	/**
	 * 是否划扣卡前端显示
     */
	public String getIsDeductNm() {
		return isDeductNm;
	}

	/**
	 * 是否划扣卡前端显示
     */
	public void setIsDeductNm(String isDeductNm) {
		this.isDeductNm = isDeductNm;
	}

	/**
	 * 是否缺省划扣卡前端显示
	 */
	public String getIsDefDeductNm() {
		return isDefDeductNm;
	}

	/**
	 * 是否缺省划扣卡前端显示
	 */
	public void setIsDefDeductNm(String isDefDeductNm) {
		this.isDefDeductNm = isDefDeductNm;
	}


	/**
	 * 是否有效
     */
	public Integer getIsValid() {
		return isValid;
	}

	/**
	 * 是否有效
     */
	public void setIsValid(Integer isValid) {
		this.isValid = isValid;
	}

	/**
	 * 客户银行签约列表
	 */
	public List<CstSignedBankDTO> getCstSignedBankList() {
		return cstSignedBankList;
	}

	/**
	 * 客户银行签约列表
	 */
	public void setCstSignedBankList(List<CstSignedBankDTO> cstSignedBankList) {
		this.cstSignedBankList = cstSignedBankList;
	}

	/**
	 * 银行预留手机号
	 */
	public String getCardTel() {
		return cardTel;
	}

	/**
	 * 银行预留手机号
	 */
	public void setCardTel(String cardTel) {
		this.cardTel = cardTel;
	}

	public String getPayTypeName() {
		return payTypeName;
	}

	public void setPayTypeName(String payTypeName) {
		this.payTypeName = payTypeName;
	}

	/**
	 * 客户银行是否已设置自动代扣
	 */
	public Integer getIsAuto() {
		return isAuto;
	}
	/**
	 * 客户银行是否已设置自动代扣
	 */
	public void setIsAuto(Integer isAuto) {
		this.isAuto = isAuto;
	}

    public Date getCrtOlAutoDate() {
        return crtOlAutoDate;
    }

    public void setCrtOlAutoDate(Date crtOlAutoDate) {
        this.crtOlAutoDate = crtOlAutoDate;
    }
}
